﻿using Quartz;
using Quartz.Impl;

namespace QuartzNetDemo.s1
{
    public class Schedule1
    {
        /// <summary>
        /// Quartz框架的使用
        /// </summary>
        public static void Show()
        {
            //1.创建作业调度池(Scheduler)
            IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();

            //2.创建一个具体的作业即job (具体的job需要单独在一个文件中执行)
            var job = JobBuilder.Create<HelloJob>().Build();

            //3.创建并配置一个触发器即trigger   1s执行一次
            var trigger = TriggerBuilder.Create()
                .WithSimpleSchedule(x => x.WithIntervalInSeconds(1)
                .RepeatForever())
                .Build();

            //4.将job和trigger加入到作业调度池中
            scheduler.ScheduleJob(job, trigger);
            
            //5.开启调度
            scheduler.Start();
        }

        public static void Show2()
        {
            //另外一种创建调度池的方法
            var factory = new StdSchedulerFactory();
            IScheduler scheduler2 = factory.GetScheduler();
        }
    }
}
